// miniprogram/pages/usersList.js
const db = wx.cloud.database()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    inputId:'',//待查找的id
    showBottom:false, // 显示底部状态栏
    total:'' , // 总用户数
    pageIndex:1 , // 当前页面数
    users:[] , //用户数据汇总
    perPage:10 //每页显示用户数
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //获取用户总数
    this.getUsersCount()
    //获取用户信息
    this.getUserInfoByIndex(this.data.pageIndex)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this.toggleBottomStatus(true)
    let users=this.data.users
    let total = this.data.total
    let index = this.data.pageIndex

    //如果不是尾页，则需要加载数据
    if (users.length<total){
      this.getUserInfoByIndex(index+1)
    }

  },
  toggleBottomStatus:function(bool){
    this.setData({
      showBottom: bool
    })
  },
  //------------------------------------------获取用户总数
  getUsersCount:function(){
    let that=this
    db.collection('users').count().then(res=>{
      that.setData({ total:res.total})
    })
  },
  //------------------------------------------根据页码获取用户信息
  getUserInfoByIndex:function(index){
    let that = this 
    let limit = this.data.perPage
    let skip = limit*(index - 1)
    let users = this.data.users
    console.log('skip:', skip, 'limit:', limit, 'users:',users)
    db.collection('users')
      .skip(skip) // 跳过结果集中的xx条
      .limit(limit) // 限制返回数量为xx条
      .get()
      .then(res => {
        console.log(res)
        for (let i = 0; i < res.data.length;i++){
          users.push(res.data[i])
        }
        
        that.setData({
          users: users,
          pageIndex: index
        })
        that.toggleBottomStatus(false)
      })
  },
  //------------------------------------------根据页码获取用户信息
  syncInputValue:function(e){
    this.setData({
      inputId: e.detail .value
    })
  },
  //------------------------------------------长按识别会员卡号
  openScanCode:function(){
    let that=this
    wx.showModal({
      title: '友情提示',
      content: '您可以快速扫描要搜索的会员二维码',
      showCancel: false,
      confirmText: '我明白了',
      success: function () {
        wx.scanCode({
          success(res) {
            console.log(res)
            // 如果加载并读取二维码无误，则获取到会员卡卡号
            if (res.errMsg == 'scanCode:ok' && res.result.length == 12) {
              wx.showToast({
                title: '读取成功!',
                icon: 'success'
              })
              that.setData({
                inputId: res.result
              })
            } else {
              wx.showToast({
                title: '读取错误！',
                icon: 'none'
              })
            }
          }
        })
      }
    })
  },
  //------------------------------------------按输入id搜索用户
  searchByIdClick:function(){
    let that=this
    //判断搜索条件不为空
    let inputId = this.data.inputId
    if (inputId == ''){
      wx.showToast({
        title: '请先输入用户ID',
        icon:'none'
      })
      return
    }
    console.log(inputId)
    //在数据库中根据id筛选
    let reg = '/' + inputId + '*/';
    const _ = db.command
    db.collection('users').where(_.or([
      {
        userid: inputId
      },
      {
        cardid: inputId
      }
    ])).get().then(res => {
      console.log(res.data)
      let searchResult=[]
      for (let i = 0; i < res.data.length; i++) {
        searchResult.push(res.data[i])
      }
      that.setData({
        users: searchResult
      })
    })
  },
//------------------------------------------重置页面
  resetClick:function(){
    this.setData({
      inputId: '',//待查找的id
      showBottom: false, // 显示底部状态栏
      pageIndex: 1, // 当前页面数
      users: [], //用户数据汇总
    })
    //获取用户总数
    this.getUsersCount()
    //获取用户信息
    this.getUserInfoByIndex(this.data.pageIndex)
  },
//------------------------------------------转至用户消费清单页面
  navToPayRecord:function(e){
    let user = e.currentTarget.dataset.user
    //console.log(user)
    wx.navigateTo({
      url: '../../pages/payRecord/payRecord?user=' + JSON.stringify(user)
    })
  }
})